const {
  Clipboard,
  Front,
  Hints,
  Normal,
  RUNTIME,
  Visual,
  aceVimMap,
  addSearchAlias,
  cmap,
  getClickableElements,
  imap,
  imapkey,
  iunmap,
  map,
  mapkey,
  readText,
  removeSearchAlias,
  tabOpenLink,
  unmap,
  unmapAllExcept,
  vmapkey,
  vmap,
  vunmap,
} = api;

// ---- Settings ----
// Hints.setCharacters("asdfgyuiopqwertnmzxcvb");

// settings.defaultSearchEngine = "d";
// settings.hintAlign = "left";
// settings.omnibarPosition = "bottom";
// settings.focusFirstCandidate = false;
// settings.focusAfterClosed = "last";
// settings.scrollStepSize = 200;
// settings.tabsThreshold = 0;
// settings.modeAfterYank = "Normal";

// ---- Map -----
// --- Hints ---
// Open Multiple Links


// unmap("/");


map("e", "C"); //新标签后台打开链接(打开但不跳转)
map("aj", "D"); // 前进
map("ak", "S"); // 后退
map("<Alt-h>", "E"); //切换到左边标签
map("<Alt-l>", "R"); //切换到右边标签
map("as", "X"); // 恢复刚刚关闭的标签
map("oc", "cc"); //打开选中的网址或系统剪贴板里的网址
map("J", "d"); //向下滚动半屏
map("K", "u"); //向上滚动半屏
map("ae", "g$"); // 跳到最后一个标签页
map("ab", "g0"); // 跳到第一个标签页
map("gr", "gU"); //跳到当前地址的根路径
map("an", "on"); // 打开新标签页
map("ad", "x"); // 关闭当前标签页
map("ac", "yt"); // 复制当前标签页
map("ar", "<Ctrl-6>"); // 切换到最近使用的前一个标签页

vmap("H","b"); //visubal模式单词移动到左边
vmap("L","e"); //visubal模式单词移动到右边
vmap("A","$"); //行尾
vmap("I","0"); //行开头



// theme

// 链接hits样式
Hints.style(
  "font-size: 13pt; font-family: 'Maple Mono NF CN';border: solid 2px #ffe95b; color:#ffe95b; background: initial; background-color: #272822;",
);

// visual hits样式
Hints.style(
  "font-size: 13pt; font-family: 'Maple Mono NF CN';border: solid 2px #A6E22E !important; padding: 1px !important; color: #A6E22E !important; background: #272822 !important;",
  "text",
);
Visual.style("marks", "background-color:rgba(226, 46, 157, 0.6);");
Visual.style("cursor", "background-color:rgb(249, 112, 38);");

settings.theme = `
/* Edit these variables for easy theme making */
:root {
  /* Font */
  --font: 'Maple Mono NF CN','Source Code Pro', Ubuntu, sans;
  --font-size: 14pt;
  --font-weight: Regular;

  /* -------------- */
  /* --- THEMES --- */
  /* -------------- */

  /* -------------------- */
  /* --    MONOKAI    -- */
  /* -------------------- */
  --fg: #F8F8F2;
  --bg: #272822;
  --bg-dark: #1D1E19;
  --border:rgb(117, 67, 24);
  --main-fg: #F92660;
  --accent-fg: #E6DB74;
  --highlight-fg:rgb(251, 83, 53);
  --info-fg: #A6E22E;
  --select:rgb(236, 169, 98);

}

/* ---------- Generic ---------- */
.sk_theme {
background: var(--bg);
color: var(--fg);
  background-color: var(--bg);
  border-color: var(--border);
  font-family: var(--font);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
}

input {
  font-family: 'Maple Mono NF CN';
  font-size: var(--font-size);
  font-weight: Medium;
}

.sk_theme tbody {
  color: var(--fg);
}

.sk_theme input {
  color: var(--fg);
}

/* Hints */
#sk_hints .begin {
  color: var(--accent-fg) !important;
}

#sk_tabs .sk_tab {
  background: var(--bg-dark);
  border: 1px solid var(--border);
}

#sk_tabs .sk_tab_title {
  color: var(--fg);
}

#sk_tabs .sk_tab_url {
  color: var(--accent-fg);
}

#sk_tabs .sk_tab_hint {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--accent-fg);
}

.sk_theme #sk_frame {
  background: var(--bg);
  opacity: 0.2;
  color: var(--accent-fg);
}

/* ---------- Omnibar ---------- */
/* Uncomment this and use settings.omnibarPosition = 'bottom' for Pentadactyl/Tridactyl style bottom bar */
/* .sk_theme#sk_omnibar {
  width: 100%;
  left: 0;
} */

.sk_theme .title {
  color: var(--accent-fg);
}

.sk_theme .url {
  color: var(--accent-fg);
}

.sk_theme .annotation {
  color: var(--accent-fg);
}

.sk_theme .omnibar_highlight {
  color: var(--highlight-fg);
}

.sk_theme .omnibar_timestamp {
  color: var(--info-fg);
}

.sk_theme .omnibar_visitcount {
  color: var(--accent-fg);
}

.sk_theme #sk_omnibarSearchResult ul li:nth-child(odd) {
  background: var(--bg-dark);
}

.sk_theme #sk_omnibarSearchResult ul li.focused {
  background: var(--border);
}

.sk_theme #sk_omnibarSearchArea {
  border-top-color: var(--border);
  border-bottom-color: var(--border);
}

.sk_theme #sk_omnibarSearchArea input,
.sk_theme #sk_omnibarSearchArea span {
  font-size: var(--font-size);
}

.sk_theme .separator {
  color: var(--accent-fg);
}

/* ---------- Popup Notification Banner ---------- */
#sk_banner {
  font-family: var(--font);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  background: var(--bg);
  border-color: var(--border);
  color: var(--fg);
  opacity: 0.9;
}

/* ---------- Popup Keys ---------- */
#sk_keystroke {
  background-color: var(--bg);
}

.sk_theme kbd .candidates {
  color: var(--info-fg);
}

.sk_theme span.annotation {
  color: var(--accent-fg);
}

/* ---------- Popup Translation Bubble ---------- */
#sk_bubble {
  background-color: var(--bg) !important;
  color: var(--fg) !important;
  border-color: var(--border) !important;
}

#sk_bubble * {
  color: var(--fg) !important;
}

#sk_bubble div.sk_arrow div:nth-of-type(1) {
  border-top-color: var(--border) !important;
  border-bottom-color: var(--border) !important;
}

#sk_bubble div.sk_arrow div:nth-of-type(2) {
  border-top-color: var(--bg) !important;
  border-bottom-color: var(--bg) !important;
}

/* ---------- Search ---------- */
#sk_status,
#sk_find {
  font-size: var(--font-size);
  border-color: var(--border);
}

.sk_theme kbd {
  background: var(--bg-dark);
  border-color: var(--border);
  box-shadow: none;
  color: var(--fg);
}

.sk_theme .feature_name span {
  color: var(--main-fg);
}

/* ---------- ACE Editor ---------- */
#sk_editor {
  background: var(--bg-dark) !important;
  height: 50% !important;
  /* Remove this to restore the default editor size */
}

.ace_dialog-bottom {
  border-top: 1px solid var(--bg) !important;
}

.ace-chrome .ace_print-margin,
.ace_gutter,
.ace_gutter-cell,
.ace_dialog {
  background: var(--bg) !important;
}

.ace-chrome {
  color: var(--fg) !important;
}

.ace_gutter,
.ace_dialog {
  color: var(--fg) !important;
}

.ace_cursor {
  color: var(--fg) !important;
}

.normal-mode .ace_cursor {
  background-color: var(--fg) !important;
  border: var(--fg) !important;
  opacity: 0.7 !important;
}

.ace_marker-layer .ace_selection {
  background: var(--select) !important;
}

.ace_editor,
.ace_dialog span,
.ace_dialog input {
  font-family: var(--font);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
}
`;
